home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / amiga / animutil / playsr / playsr.arc / object.h < prev    next >
C/C++ Source or Header  |  1988-11-10  |  3KB  |  109 lines

  1. #define    PRP_SURFACE    0
  2. #define    PRP_BRUSH    PRP_SURFACE + 1
  3. #define    PRP_WRAP    PRP_BRUSH + 1
  4. #define    PRP_STENCIL    PRP_WRAP + 1
  5. #define    PRP_TEXTURE    PRP_STENCIL + 1
  6. #define    PRP_MATTER    PRP_TEXTURE + 1
  7. #define    PRP_INDEX    PRP_MATTER + 1
  8. #define    PRP_SHINY    PRP_INDEX + 1
  9. #define    PRP_HARD    PRP_SHINY + 1
  10. #define    PRP_BLEND    PRP_HARD + 1
  11. #define    PRP_SMOOTH    PRP_BLEND + 1
  12. #define    PRP_SHADE    PRP_SMOOTH + 1
  13. #define    PRP_PHONG    PRP_SHADE + 1
  14. #define    PRP_GLOSSY    PRP_PHONG + 1
  15. #define    PRP_QUICK    PRP_GLOSSY + 1
  16. #define    PRP_EXTERN    PRP_QUICK + 1
  17.  
  18. #define    NUM_OBJ_PROPS    (PRP_EXTERN + 1)
  19.  
  20. #define    Z_WRAP        0x02
  21. #define    X_WRAP        0x01
  22.  
  23. #define    ABS_TRA    0x0001
  24. #define    ABS_ROT    0x0002
  25. #define ABS_SCL 0x0004
  26. #define    LOC_TRA    0x0010
  27. #define    LOC_ROT    0x0020
  28. #define    LOC_SCL    0x0040
  29. #define    X_ALIGN    0x0100
  30. #define    Y_ALIGN    0x0200
  31. #define    Z_ALIGN    0x0400
  32. #define    FOLLOW_ME    0x1000
  33.  
  34. typedef    struct    story    {
  35.     UBYTE    Path[18];            /*  18 bytes        */
  36.     VECTOR    Translate;            /*  12 bytes        */
  37.     VECTOR    Rotate;                /*  12 bytes        */
  38.     VECTOR    Scale;                /*  12 bytes        */
  39.     UWORD    info;                /*   2 bytes        */
  40. } STORY;                    /*  56 bytes total    */
  41.  
  42. typedef    struct    tforms    {
  43.     UBYTE    Load[80];            /*  80 bytes        */
  44.     VECTOR    Position;            /*  12 bytes        */
  45.     VECTOR    Size;                /*  12 bytes        */
  46.     MATRIX    Alignment;            /*  36 bytes        */
  47. } TFORM;                    /* 140 bytes total    */
  48.  
  49. typedef    struct    barfu    {
  50.     UWORD    Shape;                /*   2 bytes        */
  51.     UWORD    Lamp;                /*   2 bytes        */
  52. struct    object    *Parent;            /*   4 bytes        */
  53.     ULONG    Number;                /*   4 bytes        */
  54.     VECTOR    Position;            /*  12 bytes        */
  55.     VECTOR    A;                /*  12 bytes        */
  56.     VECTOR    B;                /*  12 bytes        */
  57.     VECTOR    C;                /*  12 bytes        */
  58.     VECTOR    S;                /*  12 bytes        */
  59. } SUBOBJ, *SUBPTR;                /*  72 bytes total    */
  60.  
  61. typedef    struct    object    {
  62. struct    object    *Parent;            /*   4 bytes        */
  63. struct    object    *Child;                /*   4 bytes        */
  64. struct    object    *Older;                /*   4 bytes        */
  65. struct    object    *Younger;            /*   4 bytes        */
  66.     STORY    *Story;                /*   4 bytes        */
  67.     SUBOBJ    Object;                /*  72 bytes        */
  68.     UBYTE    Props [NUM_OBJ_PROPS];        /*  16 bytes        */
  69.     UBYTE    Name [18];            /*  18 bytes        */
  70.     UWORD    PCount;                /*   2 bytes        */
  71.     UWORD    ECount;                /*   2 bytes        */
  72.     ULONG    TCount;                /*   2 bytes        */
  73.     VECTOR    *Points;            /*   4 bytes (12 bytes)    */
  74.     UWORD    *Edges;                /*   4 bytes ( 8 bytes)    */
  75.     UWORD    *Connects;            /*   4 bytes (12 bytes)    */
  76.     SUBOBJ    *Subjects;            /*   4 bytes (68 bytes)    */
  77.     UWORD    *Enumer;            /*   4 bytes ( 2 bytes) */
  78.     VECTOR    *Phongs;            /*   4 bytes (12 bytes)    */
  79.     COLOR    *DList;                /*   4 bytes ( 3 bytes)    */
  80.     COLOR    *RList;                /*   4 bytes ( 3 bytes)    */
  81.     COLOR    *TList;                /*   4 bytes ( 3 bytes)    */
  82.     float    Intensity;            /*   4 bytes        */
  83.     ULONG    Diffuse;            /*   4 bytes         */
  84.     ULONG    Reflect;            /*   4 bytes         */
  85.     ULONG    Transmit;            /*   4 bytes         */
  86.     float    Params [16];            /*  64 bytes        */
  87.     TFORM    *Transform;            /*   4 bytes        */
  88. } OBJECT, *OBJPTR;                /* 252 bytes total    */
  89.  
  90. typedef    struct    tale    {
  91. struct    tale    *Next;                /*   4 bytes        */
  92.     OBJECT    *Affects;            /*   4 bytes        */
  93.     OBJECT    *Causes;            /*   4 bytes        */
  94.     OBJECT    *Follows;            /*   4 bytes        */
  95.     STORY    Story;                /*  44 bytes        */
  96.     MATRIX    Align;                /*  36 bytes        */
  97.     UWORD    IsLoop;                /*   2 bytes        */
  98.     UWORD    LoopEdge;            /*   2 bytes        */
  99. } TALE;                        /*  96 bytes total    */
  100.  
  101. typedef    struct    scanner {
  102. struct    scanner    *Prev;                /*   4 bytes        */
  103. struct    scanner    *Next;                /*   4 bytes        */
  104.     VECTOR    P;                /*  12 bytes        */
  105.     VECTOR    dP;                /*  12 bytes        */
  106.     SUBPTR    Owner;                /*   4 bytes        */
  107.     long    cnt;                /*   4 bytes        */
  108. } SCAN, *SCANPTR;                /*  40 bytes total    */
  109.